5.2.2 构建背景数据集
5.2.2.1 基于地理空间构建背景点
bg <- randomPoints(modelEnv, 1000)
set.seed(1)
bg <- sampleRandom(x=clim_mask,
size=10000,
na.rm=T,
sp=T)
> file <- paste(system.file(package="dismo"), '/ex/acaule.csv', sep="")
> ac <- read.csv(file)
> coordinates(ac) <- ~lon+lat
> projection(ac) <- CRS(✬+proj=longlat +datum=WGS84✬)
>
> x <- circles(ac, d=50000, lonlat=TRUE)
> pol <- polygons(x)
>
> samp1 <- spsample(pol, 250, type=✬random✬, iter=25)
>
> cells <- cellFromXY(mask, samp1)
> cells <- unique(cells)
xy <- xyFromCell(mask, cells)
> plot(pol, axes=TRUE)
> points(xy, cex=0.75, pch=20, col='blue')
> spxy <- SpatialPoints(xy, proj4string=CRS(✬+proj=longlat +datum=WGS84✬))
> o <- over(spxy, geometry(x))
> xyInside <- xy[!is.na(o), ]
devtools::install_github("valentinitnelav/geobuffer")
library(geobuffer)
pts <- data.frame(lon = c(-53.20198, -52.81218),
lat = c(47.05564, 47.31741))
pts_buf_100km <- geobuffer_pts(xy = pts, dist_m = 100*10^3)
5.2.2.2 基于环境背景构建背景点
rm(list = ls())
setwd("C://Users//admin//Desktop")
library(SDMtune)
library(ENMeval)
library(raster)
library(rgdal)
library(maps)
library(mapdata)
library(dismo)
library(rJava)
library(maptools)
library(jsonlite)
library(glmnet)
library(maxnet)
library(rasterVis)
library(ggplot2)
dismo::maxent()
xh_na <- read.csv("C:/Users/Administrator/Desktop/xh/na.csv")[,2:3]
xh_as <- read.csv("C:/Users/Administrator/Desktop/xh/as.csv")[,2:3]
xh_eu <- read.csv("C:/Users/Administrator/Desktop/xh/eu.csv")[,2:3]
xh_au <- read.csv("C:/Users/Administrator/Desktop/xh/au.csv")[,2:3]
xh_sa <- read.csv("C:/Users/Administrator/Desktop/xh/sa.csv")[,2:3]
xh_ynbd <- read.csv("C:/Users/Administrator/Desktop/xh/ynbd.csv")[,2:3]
head(xh_as)
tifs <- list.files(path ="C:/Users/Administrator/Desktop/bg_area_enm/as_area",pattern="asc",full.names =T)
tiffs <- stack(tifs)
crs.geo <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")
proj4string(tiffs) <- crs.geo
envs <- tiffs
occs <- xh_as
bg.xy <- dismo::randomPoints(tiffs$BIO1, 3000,p= occs)
bg_xy <- as.data.frame(bg.xy,colnames(c("long","lat")))
data <- prepareSWD(species = "xh_sa species",
p =occs , a = bg_xy,
env = envs)
data
cb_folds <- get.checkerboard1(occ = data@coords[data@pa == 1, ],
env = envs,
bg.coords = data@coords[data@pa == 0, ],
aggregation.factor = 4)
model <- train(method = "Maxnet", data = data,folds = cb_folds)
h <- list(reg = seq(0.5, 4, 0.5), fc = c("lq", "lh", "lqp", "lqph", "lqpht"))
om <- optimizeModel(model, hypers = h, metric = "auc", seed = 4,gen=40)
head(om@results)[1,]